home *** CD-ROM | disk | FTP | other *** search
/ Team Palmtops 7 / Palmtops_numero07.iso / WinCE / SDKWindowsCE / HandHeldPCPro30 / sdk.exe / Jupiter SDK / data1.cab / ATL_Samples / polygon / polyctl.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-02-19  |  3.4 KB  |  105 lines

  1. // PolyCtl.h : Declaration of the CPolyCtl
  2.  
  3. #include <math.h>
  4. #include "resource.h"       // main symbols
  5. #include "CPPolygn.h"
  6.  
  7. /////////////////////////////////////////////////////////////////////////////
  8. // CPolyCtl
  9. class CPolyCtl : 
  10.     public CComObjectRoot,
  11.     public CComCoClass<CPolyCtl, &CLSID_PolyCtl>,
  12.     public CComControl<CPolyCtl>,
  13.     public CStockPropImpl<CPolyCtl, IPolyCtl, &IID_IPolyCtl, &LIBID_POLYGONLib>,
  14.     public IProvideClassInfo2Impl<&CLSID_PolyCtl, &DIID__PolyEvents, &LIBID_POLYGONLib>,
  15.     public IPersistStreamInitImpl<CPolyCtl>,
  16.     public IPersistStorageImpl<CPolyCtl>,
  17.     public IQuickActivateImpl<CPolyCtl>,
  18.     public IOleControlImpl<CPolyCtl>,
  19.     public IOleObjectImpl<CPolyCtl>,
  20.     public IPersistPropertyBagImpl<CPolyCtl>,
  21.     public IOleInPlaceActiveObjectImpl<CPolyCtl>,
  22.     public IViewObjectExImpl<CPolyCtl>,
  23.     public IOleInPlaceObjectWindowlessImpl<CPolyCtl>,
  24.     public IDataObjectImpl<CPolyCtl>,
  25.     public ISupportErrorInfo,
  26.     public ISpecifyPropertyPagesImpl<CPolyCtl>,
  27.     public CProxy_PolyEvents<CPolyCtl>,
  28.     public IConnectionPointContainerImpl<CPolyCtl>
  29. {
  30. public:
  31.     CPolyCtl()
  32.     {
  33.         m_nSides = 3;
  34.         m_clrFillColor = RGB(0, 0xFF, 0);
  35.     }
  36.  
  37. DECLARE_REGISTRY_RESOURCEID(IDR_PolyCtl)
  38.  
  39. DECLARE_POLY_AGGREGATABLE(CPolyCtl)
  40.  
  41. BEGIN_COM_MAP(CPolyCtl)
  42.     COM_INTERFACE_ENTRY(IPolyCtl)
  43.     COM_INTERFACE_ENTRY(IDispatch)
  44.     COM_INTERFACE_ENTRY_IMPL(IViewObjectEx)
  45.     COM_INTERFACE_ENTRY_IMPL_IID(IID_IViewObject2, IViewObjectEx)
  46.     COM_INTERFACE_ENTRY_IMPL_IID(IID_IViewObject, IViewObjectEx)
  47.     COM_INTERFACE_ENTRY_IMPL(IOleInPlaceObjectWindowless)
  48.     COM_INTERFACE_ENTRY_IMPL_IID(IID_IOleInPlaceObject, IOleInPlaceObjectWindowless)
  49.     COM_INTERFACE_ENTRY_IMPL_IID(IID_IOleWindow, IOleInPlaceObjectWindowless)
  50.     COM_INTERFACE_ENTRY_IMPL(IOleInPlaceActiveObject)
  51.     COM_INTERFACE_ENTRY_IMPL(IOleControl)
  52.     COM_INTERFACE_ENTRY_IMPL(IOleObject)
  53.     COM_INTERFACE_ENTRY_IMPL(IQuickActivate)
  54.     COM_INTERFACE_ENTRY_IMPL(IPersistPropertyBag)
  55.     COM_INTERFACE_ENTRY_IMPL(IPersistStorage)
  56.     COM_INTERFACE_ENTRY_IMPL(IPersistStreamInit)
  57.     COM_INTERFACE_ENTRY_IMPL(ISpecifyPropertyPages)
  58.     COM_INTERFACE_ENTRY_IMPL(IDataObject)
  59.     COM_INTERFACE_ENTRY(IProvideClassInfo)
  60.     COM_INTERFACE_ENTRY(IProvideClassInfo2)
  61.     COM_INTERFACE_ENTRY(ISupportErrorInfo)
  62.     COM_INTERFACE_ENTRY_IMPL(IConnectionPointContainer)
  63. END_COM_MAP()
  64.  
  65. BEGIN_CONNECTION_POINT_MAP(CPolyCtl)
  66.     CONNECTION_POINT_ENTRY(DIID__PolyEvents)
  67. END_CONNECTION_POINT_MAP()
  68.  
  69. BEGIN_PROPERTY_MAP(CPolyCtl)
  70.     PROP_ENTRY("Sides", 1, CLSID_PolyProp)
  71.     PROP_ENTRY("FillColor", DISPID_FILLCOLOR, CLSID_PolyCtl)
  72. END_PROPERTY_MAP()
  73.  
  74. BEGIN_MSG_MAP(CPolyCtl)
  75.     MESSAGE_HANDLER(WM_PAINT, OnPaint)
  76.     MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
  77.     MESSAGE_HANDLER(WM_KILLFOCUS, OnKillFocus)
  78.     MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown)
  79.     MESSAGE_HANDLER(WM_RBUTTONDOWN, OnRButtonDown)
  80. END_MSG_MAP()
  81.  
  82. // ISupportsErrorInfo
  83.     STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
  84.  
  85. // IViewObjectEx
  86.     STDMETHOD(GetViewStatus)(DWORD* pdwStatus)
  87.     {
  88.         ATLTRACE(_T("IViewObjectExImpl::GetViewStatus\n"));
  89.         *pdwStatus = VIEWSTATUS_OPAQUE;
  90.         return S_OK;
  91.     }
  92.  
  93. // IPolyCtl
  94. public:
  95.     STDMETHOD(get_Sides)(/*[out, retval]*/ short *newVal);
  96.     STDMETHOD(put_Sides)(/*[in]*/ short newVal);
  97.     HRESULT OnDraw(ATL_DRAWINFO& di);
  98.     LRESULT OnLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  99.     LRESULT OnRButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  100.  
  101.     OLE_COLOR m_clrFillColor;
  102.     short     m_nSides;
  103.     POINT     m_arrPoint[100];
  104. };
  105.